(function(root, factory) {
    if (typeof define === "function" && define.amd) {
        // AMD. Register as an anonymous module.
        define(["exports", "echarts"], factory);
    } else if (typeof exports === "object" && typeof exports.nodeName !== "string") {
        // CommonJS
        factory(exports, require("echarts"));
    } else {
        // Browser globals
        factory({}, root.echarts);
    }
}(this,
    function(exports, echarts) {
        var log = function(msg) {
            if (typeof console !== "undefined") {
                console && console.error && console.error(msg);
            }
        };
        if (!echarts) {
            log("ECharts is not Loaded");
            return;
        }

        var colorPalette = [
            "#2ec7c9", "#b6a2de", "#5ab1ef", "#ffb980", "#d87a80",
            "#8d98b3", "#e5cf0d", "#97b552", "#95706d", "#dc69aa",
            "#07a2a4", "#9a7fd1", "#588dd5", "#f5994e", "#c05050",
            "#59678c", "#c9ab00", "#7eb00a", "#6f5553", "#c14089"
        ];


        var theme = {
            color: colorPalette,

            title: {
                textStyle: {
                    fontWeight: "normal",
                    color: "#008acd"
                }
            },

            visualMap: {
                itemWidth: 15,
                color: ["#5ab1ef", "#e0ffff"]
            },

            toolbox: {
                iconStyle: {
                    normal: {
                        borderColor: colorPalette[0]
                    }
                }
            },

            tooltip: {
                backgroundColor: "rgba(50,50,50,0.5)",
                axisPointer: {
                    type: "line",
                    lineStyle: {
                        color: "#008acd"
                    },
                    crossStyle: {
                        color: "#008acd"
                    },
                    shadowStyle: {
                        color: "rgba(200,200,200,0.2)"
                    }
                }
            },

            dataZoom: {
                dataBackgroundColor: "#efefff",
                fillerColor: "rgba(182,162,222,0.2)",
                handleColor: "#008acd"
            },

            grid: {
                borderColor: "#eee"
            },

            categoryAxis: {
                axisLine: {
                    lineStyle: {
                        color: "#008acd"
                    }
                },
                splitLine: {
                    lineStyle: {
                        color: ["#eee"]
                    }
                }
            },

            valueAxis: {
                axisLine: {
                    lineStyle: {
                        color: "#008acd"
                    }
                },
                splitArea: {
                    show: true,
                    areaStyle: {
                        color: ["rgba(250,250,250,0.1)", "rgba(200,200,200,0.1)"]
                    }
                },
                splitLine: {
                    lineStyle: {
                        color: ["#eee"]
                    }
                }
            },

            timeline: {
                lineStyle: {
                    color: "#008acd"
                },
                controlStyle: {
                    normal: { color: "#008acd" },
                    emphasis: { color: "#008acd" }
                },
                symbol: "emptyCircle",
                symbolSize: 3
            },

            line: {
                smooth: true,
                symbol: "emptyCircle",
                symbolSize: 3
            },

            candlestick: {
                itemStyle: {
                    normal: {
                        color: "#d87a80",
                        color0: "#2ec7c9",
                        lineStyle: {
                            color: "#d87a80",
                            color0: "#2ec7c9"
                        }
                    }
                }
            },

            scatter: {
                symbol: "circle",
                symbolSize: 4
            },

            map: {
                label: {
                    normal: {
                        textStyle: {
                            color: "#d87a80"
                        }
                    }
                },
                itemStyle: {
                    normal: {
                        borderColor: "#eee",
                        areaColor: "#ddd"
                    },
                    emphasis: {
                        areaColor: "#fe994e"
                    }
                }
            },

            graph: {
                color: colorPalette
            },

            gauge: {
                axisLine: {
                    lineStyle: {
                        color: [[0.2, "#2ec7c9"], [0.8, "#5ab1ef"], [1, "#d87a80"]],
                        width: 10
                    }
                },
                axisTick: {
                    splitNumber: 10,
                    length: 15,
                    lineStyle: {
                        color: "auto"
                    }
                },
                splitLine: {
                    length: 22,
                    lineStyle: {
                        color: "auto"
                    }
                },
                pointer: {
                    width: 5
                }
            }
        };

        echarts.registerTheme("macarons", theme);
    }));